Method and system for location sharing

ABSTRACT

Method and server system for location sharing are disclosed. The method includes: determining a motion state of a first user in accordance with respective information items related to a current location and a previous location of a first device associated with the first user; in accordance with a determination that the motion state of the first user is a stationary state, determining a user direction of the first user based an orientation of the first device associated with the current location; in accordance with a determination that the motion state of the first user is a moving state, determining the user direction of the first user based on a motion direction from the previous location to the current location of the first device; and sending the determined user direction of the first user to one or more second devices associated with one or more second users for location sharing.

PRIORITY CLAIM AND RELATED APPLICATION

This application is a continuation application of PCT Patent ApplicationNo. PCT/CN2015/070685, entitled “METHOD AND SYSTEM FOR LOCATION SHARING”filed on Jan. 14, 2015, which claims priority to Chinese PatentApplication No. 201410035199.1, entitled “Method, Apparatus, and Systemfor Sharing User Information” filed on Jan. 24, 2014, both of which areincorporated by reference in their entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to the field of computerand internet data processing technology, and in particular, to methodand system for location sharing.

BACKGROUND

With continuous development of electronic technologies and computertechnologies, users are able to communicate with each other usinginstant messaging applications and social communication applications. Auser's photos and images may be shared with other users, and a user'semotions may also be shared by words or emoticons with other users. Itis desirable to have a method and a computer system for location sharingamong users in the network effectively and efficiently, so that theseusers may be able to find each other quickly.

SUMMARY

The embodiments of the present disclosure provide methods and systemsfor location sharing.

In some embodiments, a method for location sharing is performed at aserver system (e.g., server system 108, FIGS. 1-2) with one or moreprocessors, and memory. The method includes: determining a motion stateof a first user in accordance with respective information items relatedto a current location and a previous location of a first deviceassociated with the first user; in accordance with a determination thatthe motion state of the first user is a stationary state, determining auser direction of the first user based an orientation of the firstdevice associated with the current location of the first device; inaccordance with a determination that the motion state of the first useris a moving state, determining the user direction of the first userbased on a motion direction from the previous location to the currentlocation of the first device; and sending the determined user directionof the first user to one or more second devices associated with one ormore second users, wherein the one or more second users are associatedwith the first user for location sharing, and the determined userdirection and the current location of the first user are graphicallyrepresented on a map interface on each of the one or more seconddevices.

In some embodiments, a server system (e.g., server system 108, FIGS.1-2), includes one or more processors, and memory storing one or moreprograms for execution by the one or more processors, the one or moreprograms include instructions for performing the operations of any ofthe methods described herein.

In some embodiments, a non-transitory computer readable storage mediumstoring one or more programs, the one or more programs comprisinginstructions, which, when executed by a server system (e.g., serversystem 108, FIGS. 1-2), cause the server system to perform theoperations of any of the methods described herein. In some embodiments,a server system (e.g., server system 108, FIGS. 1-2) includes means forperforming, or controlling performance of, the operations of any of themethods described herein.

Various advantages of the present application are apparent in light ofthe descriptions below.

BRIEF DESCRIPTION OF THE DRAWINGS

The aforementioned features and advantages of the disclosed technologyas well as additional features and advantages thereof will be moreclearly understood hereinafter as a result of a detailed description ofpreferred embodiments when taken in conjunction with the drawings.

To illustrate the technical solutions according to the embodiments ofthe present application more clearly, the accompanying drawings fordescribing the embodiments are introduced briefly in the following. Theaccompanying drawings in the following description are only someembodiments of the present application; persons skilled in the art mayobtain other drawings according to the accompanying drawings withoutpaying any creative effort.

FIG. 1 is a block diagram of a server-client environment in accordancewith some embodiments.

FIG. 2 is a block diagram of a server system in accordance with someembodiments.

FIG. 3 is a block diagram of a client device in accordance with someembodiments.

FIG. 4A is a schematic flow chart of a method for sharing userinformation (e.g., location information) in accordance with someembodiments.

FIG. 4B is a schematic flow chart of a method for sharing userinformation in accordance with some embodiments.

FIGS. 5A-5H are exemplary embodiments of user interfaces of locationsharing in accordance with some embodiments.

FIG. 6A-6D are a flowchart diagram of a method for location sharing inaccordance with some embodiments.

FIG. 7 is a flow chart of a method for sharing user information (e.g.,location information) in accordance with some embodiments.

FIG. 8 is a schematic structural view of a device used for userinformation sharing (e.g., location information sharing) in accordancewith some embodiments.

FIG. 9 is a schematic structural view of a device used for userinformation sharing (e.g., location information sharing) in accordancewith some embodiments.

FIG. 10 is a schematic structural view of a processing module of thedevice as illustrated in FIG. 9 in accordance with some embodiments.

FIG. 11 is a schematic structural view of an acquisition module of thedevice as illustrated in FIG. 9 in accordance with some embodiments.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the subject matter presented herein. But itwill be apparent to one skilled in the art that the subject matter maybe practiced without these specific details. In other instances,well-known methods, procedures, components, and circuits have not beendescribed in detail so as not to unnecessarily obscure aspects of theembodiments.

The technical solution of the present application will be clearly andcompletely described in the following with reference to the accompanyingdrawings. It is obvious that the embodiments to be described are only apart rather than all of the embodiments of the present application. Allother embodiments obtained by persons of ordinary skill in the art basedon the embodiments of the present application without creative effortsshall fall within the protection scope of the present application.

In some embodiments of location sharing among one or more users on anelectronic map interface, an avatar is displayed next to a dot to prompta location of another user to a user. Such a manner displays very littleinformation, and cannot better meet information sharing demands ofusers.

The user information sharing method according to the embodiments of thepresent application is applicable to a mobile device, where the mobiledevice determines its own motion state based on its own locationinformation, acquires user direction information or moving directioninformation which can be detected by the device according to thedetermined motion state of the user, and shares the user directioninformation or moving direction information with other user devices.

The method disclosed in the present application is also applicable to aserver system, where the server system determines a motion state of amobile device associated with a user, acquires direction information ormoving direction information detected by the device according to thedetermined motion state, and shares the user direction information ormoving direction information with other user devices.

As shown in FIG. 1, location sharing is implemented in a server-clientenvironment 100 in accordance with some embodiments. In someembodiments, server-client environment 100 includes client-sideprocessing 102-1 . . . 102-N (hereinafter “client-side module 102”)executed on a client device 104-1 . . . 104-N, and server-sideprocessing 106 (hereinafter “server-side module 106”) executed on aserver system 108. Client-side module 102 communicates with server-sidemodule 106 through one or more networks 110. Client-side module 102provides client-side functionalities for the social networking platform(e.g., instant messaging, and social networking services) andcommunications with server-side module 106. Server-side module 106provides server-side functionalities for the social networking platform(e.g., instant messaging, and social networking services) for any numberof client modules 102 each residing on a respective client device 104.

In some embodiments, server-side module 106 includes one or moreprocessors 112, one or more databases 114, an I/O interface to one ormore clients 118, and an I/O interface to one or more external services120. I/O interface to one or more clients 118 facilitates the processingof input and output associated with the client devices for server-sidemodule 106. One or more processors 112 obtain instant messages from aplurality of users, process the instant messages, process locationinformation of a client device, and share location information of theclient device to client-side modules 102 of one or more client devices.The database 114 stores various information, including but not limitedto, map information, service categories, service provider names, and thecorresponding locations. The database 114 may also store a plurality ofrecord entries relevant to the users associated with location sharing,and the instant messages exchanged among the users for location sharing.I/O interface to one or more external services 120 facilitatescommunications with one or more external services 122 (e.g., merchantwebsites, credit card companies, and/or other processing services).

Examples of client device 104 include, but are not limited to, ahandheld computer, a wearable computing device, a personal digitalassistant (PDA), a tablet computer, a laptop computer, a desktopcomputer, a cellular telephone, a smart phone, an enhanced generalpacket radio service (EGPRS) mobile phone, a media player, a navigationdevice, a game console, a television, a remote control, or a combinationof any two or more of these data processing devices or other dataprocessing devices.

Examples of one or more networks 110 include local area networks (LAN)and wide area networks (WAN) such as the Internet. One or more networks110 are, optionally, implemented using any known network protocol,including various wired or wireless protocols, such as Ethernet,Universal Serial Bus (USB), FIREWIRE, Global System for MobileCommunications (GSM), Enhanced Data GSM Environment (EDGE), codedivision multiple access (CDMA), time division multiple access (TDMA),Bluetooth, Wi-Fi, voice over Internet Protocol (VoIP), Wi-MAX, or anyother suitable communication protocol.

Server system 108 is implemented on one or more standalone dataprocessing apparatuses or a distributed network of computers. In someembodiments, server system 108 also employs various virtual devicesand/or services of third party service providers (e.g., third-partycloud service providers) to provide the underlying computing resourcesand/or infrastructure resources of server system 108.

Server-client environment 100 shown in FIG. 1 includes both aclient-side portion (e.g., client-side module 102) and a server-sideportion (e.g., server-side module 106). In some embodiments, dataprocessing is implemented as a standalone application installed onclient device 104. In addition, the division of functionalities betweenthe client and server portions of client environment data processing canvary in different embodiments. For example, in some embodiments,client-side module 102 is a thin-client that provides only user-facinginput and output processing functions, and delegates all other dataprocessing functionalities to a backend server (e.g., server system108).

FIG. 2 is a block diagram illustrating a server system 108 in accordancewith some embodiments. Server system 108, typically, includes one ormore processing units (CPUs) 112, one or more network interfaces 204(e.g., including I/O interface to one or more clients 118 and I/Ointerface to one or more external services 120), memory 206, and one ormore communication buses 208 for interconnecting these components(sometimes called a chipset).

Memory 206 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and,optionally, includes non-volatile memory, such as one or more magneticdisk storage devices, one or more optical disk storage devices, one ormore flash memory devices, or one or more other non-volatile solid statestorage devices. Memory 206, optionally, includes one or more storagedevices remotely located from one or more processing units 112. Memory206, or alternatively the non-volatile memory within memory 206,includes a non-transitory computer readable storage medium. In someimplementations, memory 206, or the non-transitory computer readablestorage medium of memory 206, stores the following programs, modules,and data structures, or a subset or superset thereof:

-   -   operating system 210 including procedures for handling various        basic system services and for performing hardware dependent        tasks;    -   network communication module 212 for connecting server system        108 to other computing devices (e.g., client devices 104 and        external service(s) 122) connected to one or more networks 110        via one or more network interfaces 204 (wired or wireless);    -   server-side module 106, which provides server-side data        processing for the social networking platform (e.g., location        information processing and sharing, instant messaging, and        social networking services), includes, but is not limited to:        -   messaging module 238 for processing and routing instant            messages exchanged among a first user and one or more second            users of a social networking platform;        -   obtaining module 222 for obtaining location information of            the first user from a client device 104 associated with the            first user;        -   storing module 226 for storing various information in the            database 114, the various information including map            information, service categories, server provider names, user            locations, and entries relevant to the instant messages            exchanged during a chat session;        -   request handling module 230 for handling and responding to            various requests sent from client devices of the social            networking platform;        -   motion state determining module 232 for determining a motion            state of the user in accordance with the current location            information and previous location information of the user;        -   location processing module 234 for processing location            information of the user for sharing, including determining            the user direction in accordance with the determined motion            state of the user; and        -   providing module 236 for providing the location information            of the user to one or more second users for sharing; and    -   one or more server database 114 storing data for the social        networking platform, including but not limited to:        -   messages 242 storing messages exchanged among a plurality of            users associated with location sharing;        -   user profiles 244 storing user profiles for the plurality of            users associated with location sharing, wherein a respective            user profile for a user may include a user/account name or            handle, login credentials to the social networking platform,            location information of the user (e.g., previous location            information), payment data (e.g., linked credit card            information, app credit or gift card balance, billing            address, shipping address, etc.), custom parameters (e.g.,            age, location, hobbies, etc.) for the user, social network            contacts, groups of contacts to which the user belongs, and            identified trends and/or likes/dislikes of the user;        -   map information 246 storing geographical information of            various locations, including geographical locations, and            various services and business on the maps; and        -   location information 248 storing location information            associated with one or more of the plurality of users            associated with location sharing.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various implementations. In some implementations, memory206, optionally, stores a subset of the modules and data structuresidentified above. Furthermore, memory 206, optionally, stores additionalmodules and data structures not described above.

FIG. 3 is a block diagram illustrating a representative client device104 associated with a user in accordance with some embodiments. Clientdevice 104, typically, includes one or more processing units (CPUs) 302,one or more network interfaces 304, memory 306, and one or morecommunication buses 308 for interconnecting these components (sometimescalled a chipset). Client device 104 also includes a user interface 310.User interface 310 includes one or more output devices 312 that enablepresentation of media content, including one or more speakers and/or oneor more visual displays. User interface 310 also includes one or moreinput devices 314, including user interface components that facilitateuser input such as a keyboard, a mouse, a voice-command input unit ormicrophone, a touch screen display, a touch-sensitive input pad, acamera, a gesture capturing camera, or other input buttons or controls.Furthermore, some client devices 104 use a microphone and voicerecognition or a camera and gesture recognition to supplement or replacethe keyboard.

Memory 306 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and,optionally, includes non-volatile memory, such as one or more magneticdisk storage devices, one or more optical disk storage devices, one ormore flash memory devices, or one or more other non-volatile solid statestorage devices. Memory 306, optionally, includes one or more storagedevices remotely located from one or more processing units 302. Memory306, or alternatively the non-volatile memory within memory 306,includes a non-transitory computer readable storage medium. In someimplementations, memory 306, or the non-transitory computer readablestorage medium of memory 306, stores the following programs, modules,and data structures, or a subset or superset thereof:

-   -   operating system 316 including procedures for handling various        basic system services and for performing hardware dependent        tasks;    -   network communication module 318 for connecting client device        104 to other computing devices (e.g., server system 108 and        external service(s) 122) connected to one or more networks 110        via one or more network interfaces 304 (wired or wireless);    -   presentation module 320 for enabling presentation of information        (e.g., a user interface for a social networking platform,        widget, webpage, game, and/or application, audio and/or video        content, text, etc.) at client device 104 via one or more output        devices 312 (e.g., displays, speakers, etc.) associated with        user interface 310;    -   input processing module 322 for detecting one or more user        inputs or interactions from one of the one or more input devices        314 and interpreting the detected input or interaction;    -   one or more applications 326-1-326-N for execution by client        device 104 (e.g., games, application marketplaces, payment        platforms, social network platforms, and/or other applications);        and    -   client-side module 102, which provides client-side data        processing and functionalities for location sharing, including        but not limited to:        -   location obtaining module 332 for obtaining location            information of a user associated with the client device;        -   location processing module 332 for processing location            information of the user; and        -   location sharing module system 332 for sending location            information to the server system (e.g., server system 108)            for sharing among one or more users; and    -   client data 340 storing data of a user associated with the        client device, including, but is not limited to:        -   user profile 342 storing a user profile associated with the            user of client device 104 including a user/account name or            handle, login credentials for location sharing, payment data            (e.g., linked credit card information, app credit or gift            card balance, billing address, shipping address, etc.),            custom parameters (e.g., age, location, hobbies, etc.) for            the user, social network contacts, groups of contacts to            which the user belongs, and identified trends and/or            likes/dislikes of the user;        -   user data 344 storing data authored, saved, liked, or chosen            as favorites by the user of client device 104 in a social            networking platform; and        -   user location 346 storing location information of the user            of the client device, including current location information            and previous location information.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, modules or datastructures, and thus various subsets of these modules may be combined orotherwise re-arranged in various implementations. In someimplementations, memory 306, optionally, stores a subset of the modulesand data structures identified above. Furthermore, memory 306,optionally, stores additional modules and data structures not describedabove.

In some embodiments, at least some of the functions of server system 108are performed by client device 104, and the corresponding sub-modules ofthese functions may be located within client device 104 rather thanserver system 108. In some embodiments, at least some of the functionsof client device 104 are performed by server system 108, and thecorresponding sub-modules of these functions may be located withinserver system 108 rather than client device 104. Client device 104 andserver system 108 shown in FIGS. 2-3, respectively, are merelyillustrative, and different configurations of the modules forimplementing the functions described herein are possible in variousembodiments.

FIG. 4A is a flow chart of a method 400 for sharing user information inaccordance with some embodiments. The method 400 of the presentapplication is applicable to any suitable client device 104, such as asmart mobile terminal, such as a smart phone, a tablet computer, and asmart wearable device, that has a network function, and is alsoapplicable to a server system for an instant messaging application, asocial application, and the like, where the server system determinesuser information of a client terminal. Specifically, the method includesacquiring (401) current location information of a client device, anddetermining (401) a motion state of the client device according to thecurrent location information and location information recorded at aprevious time.

The current location information, such as latitude and longitudeinformation, of the client device, may be acquired using a positioningmodule, such as a global positioning system (GPS) module or a basestation positioning module, of the client device. In the embodiment ofthe present application, the client device may periodically invoke thepositioning module to acquire the current location information of theclient device. The current location information of the client device mayalso be acquired in response to a triggering event associated with auser of the client device. For example, when it is detected that a userturns on a user information sharing function, the GPS module or basestation positioning module or the like is invoked to acquire the currentlocation information of the user terminal.

Location information acquired each time may be saved according to a timevalue of acquisition, so as to determine location information acquiredat a current time and location information acquired at a previous time.In the embodiment of the present application, the motion state of theclient device may include a stationary state and a moving state. Amotion state of the client device may be determination based on a movingspeed; for example, when a moving speed of a client device determinedaccording to location information of two distinct times and a timeinterval is lower than a velocity threshold, e.g., 2 m/s, the motionstate of the client device can be determined as a stationary state. Whenthe moving speed is determined to be higher than the velocity threshold,e.g., 2 m/s, the motion state of the client device is determined to be amoving state. The motion states may be determined based on differentspeed thresholds in accordance with the user requirements.

Method 400 also includes triggering (402) acquisition of directioninformation of the client device and use the orientation information asuser direction information if the motion state of the client device isdetermined to be a stationary state.

Method 400 also includes performing (403) calculation according to thecurrent location information and the location information recorded at aprevious time to acquire moving direction information of the clientdevice if the motion state of the client device is determined to be amoving state, and use the moving direction information as the userdirection information.

In some implementations, when the client device is in a stationarystate, an electronic compass in the client device can be triggered andinvoked to acquire a direction of the current direction of the clientdevice, e.g., an angle of a direction to which the client device ispointing at relative to the true north direction, and then the directioninformation is used as position information of the user. In someembodiments, the position information of the user may also be acquiredby using a module such as a gyroscope and an accelerometer. When theclient device is in a moving state, moving direction information of theuser is calculated, and the moving direction information is used as theuser direction information.

Method 400 further includes sending (404) the acquired user directioninformation to an authorized sharing client device, so as to share theuser direction information of the client device with another authorizedsharing client device.

The acquired direction information or moving direction information maybe shared with one or more friend users by any suitable methods, such asan instant messaging application, a social application, and/or the like.The server system may, according to a user ID of the client device,determine one or more other user IDs authorized by the user, and thensend the direction information or moving direction information of theuser to other one or more authorized client devices. The mobile terminalmay also first send the user direction information to the applicationserver, and then the server sends the user direction information to oneor more corresponding authorized users.

It some embodiments, one or more processes of method 400 may beperformed by a client device, and the client device may, periodically orwithout user's trigger, acquire its own location information, performcalculation processing to obtain user information of orientationinformation or moving direction information, and share the userinformation of orientation information or moving direction informationwith other users. When the method 400 is executed by a server system,the server system may also periodically send an instruction to performacquisition of the location information of the client device, anddeliver the instruction to acquire orientation information of the clientdevice after the motion state of the client device is determined, or theserver system calculates a moving direction of the client device, so asto share user information of the client device with other users.

The embodiment of the disclosed technology can determine an activitystate of a user based on a location change of a client device, obtainuser information, including an orientation or a moving direction, thatcan indicate a user position in different acquisition states, and sharethe user information with other users, so that quick and effectivesharing of position information is achieved with a low cost, and a fewsoftware and hardware occupied.

FIG. 4B is a flow chart of a method 450 for sharing user information inaccordance with some embodiments. The method 450 according to theembodiment of the disclosed technology is applicable to a client device,such as a smart phone, a tablet computer, and a smart wearable device,that has a network function. Method 450 includes acquiring (451) currentlocation information of a client device, and determining (451) a motionstate of the client device according to the current location informationand location information recorded at a previous time.

Method 450 may include: triggering acquisition of the current locationinformation obtained by a positioning module arranged in the clientdevice when arrival of a preset sharing cycle time is detected;acquiring location information recorded in a previous sharing cycletime; calculating a moving speed of the client device by combining thecurrent location information and the location information in theprevious sharing cycle time with the preset sharing cycle time; and ifthe moving speed is lower than a preset speed threshold, determiningthat the client device is in a stationary state, and otherwise,determining that the user terminal is in a moving state. Locationinformation of two times may also be acquired and the motion state isdetermined when it is detected that the user launches a user informationsharing operation about a user position.

Method 450 further includes triggering (452) acquisition of directioninformation of the client device and use the orientation information asuser direction information if the motion state of the client device is astationary state.

In some embodiments, method 450 may include: triggering acquisition oforientation information of the client device obtained by an electroniccompass module arranged in the client device if the motion state of theclient device is a stationary state; and determining the acquiredorientation information as the user direction information of the clientdevice.

Method 450 further includes performing (453) calculation according tothe current location information and the location information recordedat a previous time to acquire moving direction information of the clientdevice if the motion state of the user terminal is a moving state, anduse the moving direction information as the user direction information.

In some implementations, when the client device is in a stationarystate, an electronic compass in the client device can be triggered andinvoked to acquire an orientation of the current direction of the clientdevice relative to the true north direction, and then the orientationinformation is used as position information of the user. The positioninformation of the user may also be acquired based on a module such as agyroscope and an accelerometer. When the client device is in a movingstate, moving direction information of the user is calculated, and themoving direction information is used as the user direction information.

Method 450 may also include: determining moving direction information ofthe user terminal according to a relative direction of the currentlocation information relative to the location information recorded at aprevious time if the motion state of the user terminal is a movingstate; and determining the moving direction information as the userdirection information of the user terminal.

Method 450 further includes sending (454) the acquired user directioninformation to a server system, where the server system sends the userdirection information to an authorized sharing client device. Theauthorized sharing client device refers to a client device correspondingto another user authorized by the user initiating sharing of the userdirection information, and the user can determine one or more authorizedusers that can acquire the direction information of the user in a mannerof registry in a server system, so that the server system determines theauthorized sharing client device according to registered content.

Method 450 further includes receiving (455) user information, includinga user ID and the user direction information, sent by the server system.

Method 450 further includes, according to a user ID included in eachpiece of user information, displaying (456) corresponding user directioninformation on an electronic map where a user image indicated by thecorresponding user ID is displayed. While sharing the directioninformation of the user with other users, the client device may alsoreceive direction information of another user shared by another user.

FIGS. 5A-5H are exemplary embodiments of user interfaces of locationsharing displayed on client device 104 (e.g., a mobile phone) inaccordance with some embodiments. However, one skilled in the art willappreciate that the user interfaces shown in FIGS. 5A-5H may beimplemented on other similar computing devices.

FIG. 5A illustrates an embodiment of a user interface 500 for locationsharing in accordance with some embodiments. As shown in FIG. 5A,location information of users A and B are shared between users A and B.In some embodiments, the user interface 500 is an electronic mapinterface which is shown on a client device associated with A and/or aclient device associated with B respectively. In some embodiments, theuser direction information may be displayed on the electronic map usingin the corresponding user avatar according to the received user ID anduser direction information. In some embodiments as shown in FIG. 5A,after the orientation information or the moving direction information isdetermined, the direction information of a user is displayed with ashort arrow. For example, it is shown on the map interface 500 that themoving direction 502 of the user B 504 is eastward, and an orientationdirection of the user A is facing north.

An motion state of a user can be determined based on a locationinformation change of a client device, quickly and effectively obtainuser information, including an orientation or a moving direction, thatcan indicate a user position in different acquisition states based on anorientation determination module such as a compass and a positioningmodule such as GPS that are included in the client device, and share theuser information with other users, so that quick and effective sharingof position information is achieved, cost is low, and a few software andhardware resources are occupied.

In some embodiments, when a user is determined to be in a motion state,a calculated velocity of the user may be displayed on the map interface,and a future location may also be predicted and displayed on the mapinterface. As shown in FIG. 5B, when user B is determined to be in amoving state, based on the current location information and the previouslocation information of user B and a traveling time from the previouslocation to the current location, a velocity of user B can becalculated. In some embodiments, a calculated velocity 506 of user B isdisplayed on the map interface 500. In some embodiments, a futurelocation 508 of user B is also shown on the map interface 500, and thefuture location is predicted using the calculated velocity and apredetermined time (e.g., 5 minutes)

FIG. 5C illustrates an embodiment of a user interface 510 for locationsharing during a chat session in accordance with some embodiments. Insome embodiments, user A and user B are exchanging instant messagesduring a chat session while sharing the location information. As shownin FIG. 5C, one or more dialogue boxes are displayed on the mapinterface 510 at locations associated with the corresponding usersrespectively. An input box is also displayed on the map interface 510 atthe current location of the user of the particular client device 104presenting the user interface 510. For example, a dialogue box 512associated with user A is displayed next to the icon corresponding tothe user A on the map interface 500, where user A is the user of theclient device showing the map interface 500. An input box 514 associatedwith user B is displayed next to the icon corresponding to the user B,where user B is the user with whom user A is sharing locationinformation. In some embodiments, the map interface 500 including thedialogue box(es) and the input box can be presented in response to adetection of key words (e.g., keywords regarding planning for agathering) in the chat messages exchanged between two or more users in aregular chat interface (e.g., a chat interface showing chat messages indialogue bubbles without a map interface as its background).

In some embodiments, the map interface can be re-centered, in responseto an instruction, over a location of a user who is currently notincluded on the map interface. For example, in FIG. 5D, user C sharesthe location information of user C with user A and user B, and user Aand user B also share their respective location information as shown ona map interface 520. The map interface 520 may be shown on a clientdevice associated with any of the users A, B, and C. In some examples,initially, the location of user C is outside of the range displayed onmap interface 500 in FIG. 5A. In response to an instruction, e.g.,tapping an icon 522 corresponding to user C, the map interface 520 maybe re-centered over the location of user C. The scale of the mapinterface before and after the re-centering may or may not be identical.

In some embodiments as shown in FIG. 5D, a transportation mode of a usercan be determined when the user is in a moving state. The transportationmode may be determined in accordance with the calculated moving speed.For example as shown in FIG. 5D, when the user's moving velocity iscalculated to be in a similar scale as a moving speed of a vehicle,e.g., around 40 miles/hour, the transportation mode of the user isdetermined to be using a vehicle, instead of walking. A correspondingtransportation icon, such as vehicle icon 524, is shown on the mapinterface to indicate the current location, moving direction, and movingtransportation mode of user C. In some embodiments, a moving route ofthe user can be estimated from the current location information and theprevious location information. The moving route may be compared with apublic transportation route, e.g., a bus route, to determine whether theuser is taking a public transportation. In one example as shown in FIG.5D, when the moving route of user C is determined to match a certain busroute (e.g., bus #5), the transportation mode of user C may bedetermined to be taking the corresponding bus route (e.g., bus #5), asindicated by the bus icon 524 in FIG. 5D.

FIG. 5E illustrates an embodiment of zooming out the map interface 530,in response to an instruction (e.g., selecting a user icon 522), toinclude the location of the user corresponding to the selected icon onthe map interface during a location sharing process. For example asshown in FIG. 5E, in response to tapping the user icon 522 associatedwith user C, the map interface may zoom out so that the iconscorresponding to the locations of user A, user B, and user C,respectively, can be all displayed on the map interface 530. Thedirection information of user A, user B, and user C is also displayed onthe map interface 520 as shown in FIG. 5E.

FIG. 5F illustrates an embodiment of zooming into the map interface 540,in response to an instruction (e.g., selecting a user icon 542), aroundthe user location of the user corresponding to the selected icon on themap interface during a location sharing process. For example, inresponse to tapping the user icon 542 associated with user C, the mapinterface may zoom in so that the location information of user C isdisplayed on map interface 540 with a larger scale. The locationinformation of user C includes the current location, the movingdirection, and a transportation icon 522 representing the transportationmode of the user C.

FIGS. 5G-5H further illustrate some embodiments for location sharingbetween two or more users, such as between user A and user C. As shownin FIG. 5G, a first range 552 around the current location of user A, anda second range 554 around the current location of user C arerespectively displayed on a map interface 550. In some embodiments, thedimension of the range around a user location is predetermined by one ofthe two or more users who are currently sharing their locations. In someembodiments, an overlapped region 556 is shown between the first range552 and the second range 554 on the display of the client device. A usermay further send a request to have an expanded view of the overlappedregion 556. For example, after a user taps (558) any part of theoverlapped region 556 on the display of the client device, an expandedview 570 of the overlapped region 556 is displayed on the map interfaceas shown in FIG. 5H. One or more location indicators (e.g., locationindicators 572, 574, etc.) of one or more businesses within the expandedview 570 of the overlapped region 556 are displayed on the map interfaceas shown in FIG. 5H.

FIGS. 6A-6D illustrate a flowchart diagram of a method 600 for locationsharing in accordance with some embodiments. In some embodiments, method600 is performed by a server system 108 with one or more processors andmemory. For example, in some embodiments, method 600 is performed byserver system 108 (FIGS. 1-2) or a component thereof (e.g., server-sidemodule 106, FIGS. 1-2). In some embodiments, method 600 is governed byinstructions that are stored in a non-transitory computer readablestorage medium and the instructions are executed by one or moreprocessors of the server system. Optional operations are indicated bydashed lines (e.g., boxes with dashed-line borders).

In method 600, a server system (e.g., server system 108, motion statedetermining module 232, FIG. 2) determines (602) a motion state of afirst user in accordance with respective information items related to acurrent location and a previous location of a first device associatedwith the first user. In some embodiments, the respective informationitems comprise one or more selected from a group consisting of alatitude, an altitude, an orientation, a moving direction, and a time.

In some embodiments, the one or more information items related to thelocation is obtained using a positioning module, such as a globalpositioning system (GPS) module, an accelerometer module, and/or agyroscope module associated with the first device. In some embodiments,the one or more information items related to the location of the firstdevice may be obtained at a predetermined time interval, i.e., thelocation of the first device is obtained once every predetermined timeinterval. In some embodiments, the one or more information items relatedto the location of the first device may be obtained when the firstdevice detects a trigger by the first user, e.g., the first user turnson a location information sharing function on the first device. In someembodiments, the one or more information items related to the locationof the first device may be obtained when the server detects a registrywith the server system by the first user and/or one or more second usersassociated with the first user, wherein the registry is triggered bydetecting enabling location information sharing functions at the firstdevice and/or the one or more second devices. In some embodiments, theone or more information items related to the location of the firstdevice may be obtained during a chat session between the first user andthe one or more second users. When the server detects one or morekeywords in the conversation related to a location and/or anappointment, the server system obtains the location information of theuser. For example, the conversation includes a keyword related to alocation which matches a current location of the first user, or theconversation includes a keyword related to scheduling an appointmentbetween the first user and any of the one or more second users.

In some embodiments, determining the motion state of the first userincludes: (1) calculating a user velocity of the first user moving fromthe previous location to the current location, and (2) comparing thecalculated user velocity to a predetermined velocity threshold todetermine the motion state of the first user. The user velocity may becalculated by dividing a distance between the previous location and thecurrent location, by a time span for the first user to move from theprevious location to the current location. In some embodiments, inaccordance with a determination that the calculated user velocity of thefirst user is greater than or equal to the predetermined velocitythreshold, the motion state of the first user is determined to be themoving state. In some embodiments, in accordance with a determinationthat the calculated user velocity of the first user is smaller than thepredetermined velocity threshold, the motion state of the first user isdetermined to be the stationary state.

In some embodiments, the distance between the previous location and thecurrent location is calculated using the one or more information itemsassociated with the current location and the one or more informationitems associated with the previous location, such as the latitude andthe altitude of the current location, and the latitude and the altitudeof the previous location. In some embodiments, the time span for thefirst user to move from the previous location to the current location isdetermined to be a time difference between the time associated withobtaining the one or more information items associated with the currentlocation and the time associated with obtaining the one or moreinformation items associated with the previous location. In someembodiments, the time span may be equal to a predetermined time intervalfor obtaining the location of the first device, or a time differencebetween the previous time when the location information sharing functionis enabled by the first user and/or the one or more second users, andthe current time when the location information sharing function isenabled by the first user and/or the one or more second users.

In some embodiments, prior to determining the motion state of the firstuser, method 600 further includes comparing a time span for the firstuser to move from the previous location to the current location with apredetermined time threshold. Determining the motion state of the firstuser is performed in accordance with a determination that the time spanis equal to or smaller than the predetermined time threshold. In someembodiments, when the time span is greater than the predetermined timethreshold, the location sharing may be relatively inactive. For example,when it has been a long time since the previous time when the locationinformation sharing function is enabled, to the current time when thelocation information sharing function is enabled, the motion state ofthe first user and/or the velocity of the first user cannot beaccurately determined by simply dividing the distance between the twolocations by the time span between these two locations, because variousmotion states may happen to the first user during this time span betweenthese two locations. Therefore under such circumstances, the serverobtains one or more information items related to a next location at anext time to determine the motion state of the first user, wherein thenext time for obtaining the next location may be determined to be at apredetermined time interval, which is shorter than the predeterminedtime threshold.

In method 600, in accordance with a determination that the motion stateof the first user is a stationary state, the server system (e.g.,location processing module 234 of server system 108, FIG. 2) determines(604) a user direction of the first user based an orientation of thefirst device associated with the current location of the first device.In accordance with a determination that the motion state of the firstuser is a moving state, the server system (e.g., location processingmodule 234 of server system 108, FIG. 2) determines (606) the userdirection of the first user based on a motion direction from theprevious location to the current location of the first device.

In method 600, the server system (e.g., providing module 236 of serversystem 108, FIG. 2) sends (608) the determined user direction of thefirst user to one or more second devices associated with one or moresecond users. The one or more second users are associated with the firstuser for location sharing, and the determined user direction and thecurrent location of the first user are graphically represented on a mapinterface on each of the one or more second devices.

In some embodiments, in accordance with a determination that the motionstate of the first user is the moving state, the server systemdetermines (610) a user velocity of the first user based on therespective information items related to the current location and theprevious location of the first device. The server system then sends(610) the determined user velocity of the first user to the one or moresecond devices, and the determined user velocity of the first user isgraphically represented on the map interface along with the userdirection and the current location of the first user, as shown in FIG.5B.

In some embodiments, the server system provides (614) instant messagestransmitted during a chat session between the first user and the one ormore second users. In some embodiments, the server system displays (616)respective instant messages from the first user and the one or moresecond users in respective dialogue boxes at respective locations of thefirst user and the one or more second users on the map interface asshown in FIG. 5C. In some embodiments, an input box for typing instantmessages may be displayed outside of the map interface or in the mapinterface, or the input can be provided via speech. In someimplementations, providing the dialogue boxes and detecting the keywordsfor displaying the instant messages may be independent from each other,for example, the dialogue boxes can be provided on a map interface fromthe start, without requiring the detection of keywords first.

In accordance with a predetermined keyword matching criterion, theserver system detects (618) one or more keywords in the instant messagestransmitted during the chat session. In some embodiments, thepredetermined criterion includes: (1) the current location of the firstuser matching (e.g., within a certain distance of) one or more words inthe chat messages, or (2) a predetermine keyword including a keywordrelated to, but not limited to, an appointment, a meeting, a dinner. Inresponse to detecting the one or more keywords, the server systemprovides (620) the map interface to the one or more second devices fordisplay during the chat session, wherein the determined user directionof the first user is displayed on the map interface on each of the oneor more second devices.

In some embodiments, the server system further displays (622) respectiveicons corresponding to the first user and the one or more second userson the map interface on each of the one or more second devices. Inresponse to receiving selection input from a respective user of the oneor more second users for selecting one of the respective iconscorresponding to the first user and the one or more second users, theserver system adjusts (624) the map interface displayed on at least thesecond device associated with the respective user providing theselection input, as shown in FIGS. 5D-5F. In some embodiments, adjustingthe map interface includes (626) one of (1) re-centering the mapinterface over a user location of the user corresponding to the selectedicon, (2) zooming out the map interface to include the user location ofthe user corresponding to the selected icon on the map interface, and(3) zooming into the map interface around the user location of the usercorresponding to the selected icon on the map interface. The iconscorresponding to the first user and the one or more second users may bedisplayed on a top banner above the map on the display (in this case,these icons are distinct from the icons representing the userlocations/direction on the map), or may be displayed on the mapcorresponding to their locations.

In some implementations of re-centering the map interface, the user'slocation/direction indicator may or may not be visible in the map beforethe use's icon is selected in the banner. The re-centering can beperformed by a translation of the map view from the current view, or there-centering can be accomplished by a zooming out, such that the objects(e.g., location indicators of other users) currently in view can remainin view when the map is re-centered around the selected user's locationindicator.

In some implementations of zooming into or out the map interface, theuser's location/direction indicator may or may not be visible in the mapbefore the use's icon is selected in the banner. In some embodiments, ifthe location indicator of the selected user is not already in view, thezooming out causes the location indicator of the selected user to comeinto view, while keeping the location indicators of other users alreadyin view in the map.

In some embodiments, in accordance with a determination that the motionstate of the first user is the moving state, the server systemdetermines (628) a transportation mode associated with the first user inaccordance with the respective information items of the first device.The server system then displays (630) an icon corresponding to thedetermined transportation mode associated with the first user on the mapinterface on each of the one or more second devices, as shown in FIGS.5D and 5F.

The transportation of the first user may be determined using the movingvelocity of the first user. For example, if the moving velocity is under3 miles/hour, the first user is walking, and a pedestrian icon is shownon the map interface to indicate the first user. If the moving velocityis around 50 miles/hour, the first user is in a vehicle, and a car iconis shown on the map interface to indicate the first user. Further, bycomparing the moving route of the first user with a known publictransportation route, such as bus route, or rail road route, the servermay further detect whether the first user is taking a publictransportation and display a corresponding public transportation icon onthe map interface.

In some embodiments, in accordance with a determination that the motionstate of the first user is the moving state, the server system predicts(632) a future location of the first user based on the respectiveinformation items of the first device. The future location may beestimated based on the current location, current moving velocity, andthe current moving direction. The estimated future location may bedisplayed on the map interface as shown in FIG. 5B.

In some embodiments, the server system displays (634) a first rangearound the current location of the first user on the map interface, anddisplays (636) a second range around a current location of at least oneof the one or more second users on the map interface. In response todetecting a selection input directed to an overlapped region of thefirst range and the second range from one of the first user and at leastone of the one or more second users, the server system displays (638) anexpanded view of the overlapped region between the first range and thesecond range on the map interface on at least the first device and thesecond device corresponding to the at least one of the one or moresecond users (e.g., as shown in FIGS. 5G-5H). In some embodiments, theserver system displays respective location indicators of one or morebusinesses within the expanded view of the overlapped region between thefirst range and the second range on the map interface as shown in FIG.5H.

In some embodiments, the first range and the second range are determinedby a range centered at the current location of the first user and thesecond user respectively with a predetermined radius. In someembodiments, the first range and the second range are determined bypredicting a range of future locations based on the current movinginformation of the first user and the second user respectively. The atleast one of the one or more second users who determines the secondrange and the at least one of the one or more second users who sends theselection input directed to the overlapped region may or may not be thesame user. The expanded view of the overlapped region may be displayedon any of the second device associated with the user who determines thesecond range, or the user who sends the selection input, if they are notthe same person.

FIG. 7 is a schematic flow chart of a method 700 for sharing userinformation, such as sharing orientation information or motioninformation of a user through interactions between a client device and aserver system. Method 700 includes a first client device acquiring (702)current location information, and determining (702) a motion state ofthe first user terminal according to the current location informationand location information recorded at a previous time.

The current location information, such as latitude and longitudeinformation, of the first client device, may be acquired using apositioning module, such as a GPS module or a base station positioningmodule, of the first user terminal. The first client device mayperiodically invoke the positioning module to acquire the currentlocation information of the first user terminal. Certainly, the currentlocation information of the first client device may also be acquired inthe case of user trigger; for example, when it is detected that a userturns on a user information sharing function, the GPS module or the basestation positioning module or the like is invoked to acquire the currentlocation information of the first client device.

The first client device may save location information acquired each timeaccording to a time value of acquisition, so as to determine locationinformation acquired at a current time and location information acquiredat a previous time in process 704. In some embodiments, the motion stateof the first client device may include a stationary state and a movingstate. A specific manner of determining a motion state may bedetermination based on a moving speed; for example, when a moving speedof a user determined according to location information of two times anda time interval is lower than 2 m/s, it can be determined as astationary state, whereas it is determined as a moving state when themoving speed is higher than or equal to 2 m/s. Certainly, based on userrequirements, various motion states may be determined based on differentspeed thresholds.

The first client device acquires (704) user direction informationcorresponding to the first client device according to the determinedmotion state, and sends the user direction information to a serversystem. In some embodiments, acquisition orientation information of thefirst client device is triggered and the orientation information is usedas user direction information if the motion state of the first clientdevice is a stationary state. Calculation is performed according to thecurrent location information and the location information recorded at aprevious time to acquire moving direction information of the firstclient device if the motion state of the first client device is a movingstate, and the moving direction information is used as the userdirection information.

The server system determines (706) an ID of a sharing user authorized bya user indicated by the user ID according to a user ID of the first userterminal. The authorized sharing user refers to another user authorizedby the user initiating sharing of the user direction information, andthe user can determine one or more authorized users that can acquireuser direction information in a manner of registry with the serversystem, so that the server system determines the authorized sharingterminal according to registered content.

The server system sends (708) the received user direction information ofthe first client device to a second client device corresponding to thedetermined ID of sharing user, and sends, to the first client device,received user direction information that has been authorized to the userindicated by the corresponding user ID of the first client device.

The first client device and the second client device, after receivingthe user direction information, display (710) the corresponding userdirection information on an electronic map where a user image indicatedby the corresponding user ID is displayed. While sharing the local userdirection information, the client device may further receive userdirection information shared by other users.

The embodiment of the present application can determine a motion stateof a user based on a location change of a client device, obtain userinformation, including an orientation or a moving direction, that canindicate a user position in different acquisition states, and share theuser information with other users, so that quick and effective sharingof position information can be achieved with a low cost and a fewsoftware and hardware resources.

FIG. 8 is a schematic structural view of a device 800 used for sharinguser information in accordance with some embodiments. The device isapplicable to a smart mobile terminal, such as a smart phone, a tabletcomputer, and/or a smart wearable device. The device 800 has a networkfunction, and is also applicable to a server system for an instantmessaging application, a social application, and the like, where theserver system determines user information of a user terminal. Device 800includes an acquisition module 802 for acquiring current locationinformation of a client device, and determining a motion state of theclient device according to the current location information and locationinformation recorded at a previous time. Device 800 also includes aprocessing module 804, for triggering acquisition of orientationinformation of the client device and using the orientation informationas user direction information if the motion state of the client deviceis a stationary state, performing calculation according to the currentlocation information and the location information recorded at a previoustime to acquire moving direction information of the user terminal if themotion state of the user terminal is a moving state, and using themoving direction information as the user direction information. Device800 also includes a sharing module 806 for sending the acquired userdirection information to an authorized sharing terminal, so as to sharethe user direction information of the client device with the authorizedsharing client device.

The acquisition module 802 may specifically acquire the current locationinformation, such as latitude and longitude information, of the clientdevice using a positioning module, such as a GPS module or a basestation positioning module, of the client device. The acquisition module802 may periodically invoke the positioning module to acquire thecurrent location information of the client device. Certainly, theacquisition module 802 may also acquire current location information ofthe client device in the case of user trigger; for example, whendetecting that a user turns on a user information sharing function, theacquisition module 802 invokes the GPS module or base stationpositioning module or the like to acquire the current locationinformation of the client device.

Location information acquired each time may be saved according to a timevalue of acquisition, so that the acquisition module 802 determineslocation information acquired at a current time and location informationacquired at a previous time. The motion state of the client devicedetermined by the acquisition module 802 may include a stationary stateand a moving state. A specific manner of determining a motion state maybe determination based on a moving speed; for example, when a movingspeed of a user determined according to location information of twotimes and a time interval is lower than 2 m/s, it can be determined as astationary state, whereas it is determined as a moving state when themoving speed is higher than or equal to 2 m/s. Certainly, based on userrequirements, various motion states may be categorized based ondifferent speed thresholds.

In some implementations, when the client device is in a stationarystate, the processing module 804 may trigger and invoke an electroniccompass in the client device to acquire an orientation of the currentdirection of the client device relative to the true north direction, andthen use the angle information as position information of the user. Theposition information of the user may also be acquired based on a modulesuch as a gyroscope and an accelerometer. When the client device is in amoving state, the processing module 804 calculates moving directioninformation of the user, and uses the moving direction information asthe user direction information.

The sharing module 806 may send the acquired orientation information ormoving direction information to one or more users for sharing directlyusing an instant messaging application, a social application, and/or thelike. The user direction information may also be sent to a server systemaccording to a user ID of the client device, and the application serverdetermines one or more other user IDs authorized by the user indicatedby the user ID, and then sends the angle information or moving directioninformation to each authorized user. The client device may also firstsend the user direction information to the server system, and then theserver system sends the user direction information to one or morecorresponding authorized users.

FIG. 9 is a schematic structural view of a device 900 used for sharinguser information in accordance with some embodiments. Device 900 mayinclude the acquisition module 902, the processing module 904, and thesharing module 906 which are substantially similar to acquisition module802, processing module 804, and sharing module 806 of device 800. Device900 may further include a receiving module 908, for receiving userinformation, including a user ID and user direction information, sent bya server system; and a display module 910, for displaying correspondinguser direction information on an electronic map where a user imageindicated by the corresponding user ID is displayed, according to a userID included in each piece of user information.

While user direction information is shared, the receiving module 908 mayreceive user direction information shared by other users. After theangle information based on the true north direction is determined or themoving direction is determined, the display module 910 generates anddisplays an arrow indicating direction information.

FIG. 10 is a schematic structural view of processing module 904 ofdevice 900 as illustrated in FIG. 9 in accordance with some embodiments.Processing module 904 further includes a first processing unit 912, fortriggering acquisition of orientation information of the client deviceobtained by an electronic compass module arranged in the client deviceif the motion state of the client device is a stationary state; and fordetermining the acquired orientation information as the user directioninformation of the client device. Processing module 904 also includes asecond processing unit 914, for determining moving direction informationof the client device according to a relative direction of the currentlocation information relative to the location information recorded at aprevious time if the motion state of the client device is a movingstate, and determining the moving direction information as the userdirection information of the client device.

FIG. 11 is a schematic structural view of acquisition module 902 ofdevice 900 as illustrated in FIG. 9 in accordance with some embodiments.The acquisition module 902 may include a trigger unit 922, fortriggering acquisition of the current location information obtained by apositioning module arranged in the client device when arrival of apreset sharing cycle time is detected; an acquisition unit 924, foracquiring location information recorded in a previous sharing cycletime; a calculation unit 926, for calculating a moving speed of theclient device by combining the current location information and thelocation information in the previous sharing cycle time with the presetsharing cycle time; and a determination unit 928, for, if the movingspeed is lower than a preset speed threshold, determining that theclient device is in a stationary state, and otherwise, determining thatthe client device is in a moving state. Further optionally, the sharingmodule 906 is used for sending the acquired user direction informationto a server system, where the server system sends the user directioninformation to an authorized sharing client device.

Each of the methods described herein is typically governed byinstructions that are stored in a computer readable storage medium andthat are executed by one or more processors of one or more servers orclient devices. The above identified modules or programs (i.e., sets ofinstructions) need not be implemented as separate software programs,procedures or modules, and thus various subsets of these modules will becombined or otherwise re-arranged in various embodiments.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the disclosed technology to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The embodiments were chosen and described in order to bestexplain the principles of the disclosed technology and its practicalapplications, to thereby enable others skilled in the art to bestutilize the disclosed technology and various embodiments with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A method for location sharing, comprising: at aserver system having one or more processors and a memory: determining amotion state of a first user in accordance with respective informationitems related to a current location and a previous location of a firstdevice associated with the first user; in accordance with adetermination that the motion state of the first user is a stationarystate, determining a user direction of the first user based anorientation of the first device associated with the current location ofthe first device; in accordance with a determination that the motionstate of the first user is a moving state, determining the userdirection of the first user based on a motion direction from theprevious location to the current location of the first device; andsending the determined user direction of the first user to one or moresecond devices associated with one or more second users, wherein the oneor more second users are associated with the first user for locationsharing, and the determined user direction and the current location ofthe first user are graphically represented on a map interface on each ofthe one or more second devices.
 2. The method of claim 1, furthercomprising: in accordance with a determination that the motion state ofthe first user is the moving state, determining a user velocity of thefirst user based on the respective information items related to thecurrent location and the previous location of the first device; andsending the determined user velocity of the first user to the one ormore second devices, wherein the determined user velocity of the firstuser is graphically represented on the map interface along with the userdirection and the current location of the first user.
 3. The method ofclaim 1, further comprising: providing instant messages transmittedduring a chat session between the first user and the one or more secondusers; in accordance with a predetermined keyword matching criterion,detecting one or more keywords in the instant messages transmittedduring the chat session; and in response to detecting the one or morekeywords, providing the map interface to the one or more second devicesfor display during the chat session, wherein the determined userdirection of the first user is displayed on the map interface on each ofthe one or more second devices.
 4. The method of claim 3, furthercomprising: displaying respective instant messages from the first userand the one or more second users in respective dialogue boxes atrespective locations of the first user and the one or more second userson the map interface.
 5. The method of claim 1, further comprising:displaying respective icons corresponding to the first user and the oneor more second users on the map interface on each of the one or moresecond devices; and in response to receiving a selection input from arespective user of the one or more second users for selecting one of therespective icons corresponding to the first user and the one or moresecond users, adjusting the map interface displayed on at least thesecond device associated with the respective user providing theselection input, wherein adjusting the map interface includes one of:re-centering the map interface over a user location of the usercorresponding to the selected icon, zooming out the map interface toinclude the user location of the user corresponding to the selected iconon the map interface, and zooming into the map interface around the userlocation of the user corresponding to the selected icon on the mapinterface.
 6. The method of claim 1, further comprising: in accordancewith a determination that the motion state of the first user is themoving state, determining a transportation mode associated with thefirst user in accordance with the respective information items of thefirst device; and displaying, on the map interface on each of the one ormore second devices, an icon corresponding to the determinedtransportation mode associated with the first user.
 7. The method ofclaim 1, further comprising: in accordance with a determination that themotion state of the first user is the moving state, predicting a futurelocation of the first user based on the respective information items ofthe first device.
 8. The method of claim 1, further comprising:displaying a first range around the current location of the first useron the map interface; displaying a second range around a currentlocation of at least one of the one or more second users on the mapinterface; and in response to detecting, from one of the first user andthe at least one of the one or more second users, a selection inputdirected to an overlapped region of the first range and the secondrange, displaying an expanded view of the overlapped region between thefirst range and the second range on the map interface on at least thefirst device and the second device corresponding to the at least one ofthe one or more second users.
 9. A server system, comprising: one ormore processors; and memory storing one or more programs to be executedby the one or more processors, the one or more programs comprisinginstructions for: determining a motion state of a first user inaccordance with respective information items related to a currentlocation and a previous location of a first device associated with thefirst user; in accordance with a determination that the motion state ofthe first user is a stationary state, determining a user direction ofthe first user based an orientation of the first device associated withthe current location of the first device; in accordance with adetermination that the motion state of the first user is a moving state,determining the user direction of the first user based on a motiondirection from the previous location to the current location of thefirst device; and sending the determined user direction of the firstuser to one or more second devices associated with one or more secondusers, wherein the one or more second users are associated with thefirst user for location sharing, and the determined user direction andthe current location of the first user are graphically represented on amap interface on each of the one or more second devices.
 10. The serversystem of claim 9, wherein the one or more programs further comprisesinstructions for: in accordance with a determination that the motionstate of the first user is the moving state, determining a user velocityof the first user based on the respective information items related tothe current location and the previous location of the first device; andsending the determined user velocity of the first user to the one ormore second devices, wherein the determined user velocity of the firstuser is graphically represented on the map interface along with the userdirection and the current location of the first user.
 11. The serversystem of claim 9, wherein the one or more programs further comprisesinstructions for: providing instant messages transmitted during a chatsession between the first user and the one or more second users; inaccordance with a predetermined keyword matching criterion, detectingone or more keywords in the instant messages transmitted during the chatsession; and in response to detecting the one or more keywords,providing the map interface to the one or more second devices fordisplay during the chat session, wherein the determined user directionof the first user is displayed on the map interface on each of the oneor more second devices.
 12. The server system of claim 9, wherein theone or more programs further comprises instructions for: displayingrespective icons corresponding to the first user and the one or moresecond users on the map interface on each of the one or more seconddevices; and in response to receiving a selection input from arespective user of the one or more second users for selecting one of therespective icons corresponding to the first user and the one or moresecond users, adjusting the map interface displayed on at least thesecond device associated with the respective user providing theselection input, wherein adjusting the map interface includes one of:re-centering the map interface over a user location of the usercorresponding to the selected icon, zooming out the map interface toinclude the user location of the user corresponding to the selected iconon the map interface, and zooming into the map interface around the userlocation of the user corresponding to the selected icon on the mapinterface.
 13. The server system of claim 9, wherein the one or moreprograms further comprises instructions for: in accordance with adetermination that the motion state of the first user is the movingstate, determining a transportation mode associated with the first userin accordance with the respective information items of the first device;and displaying, on the map interface on each of the one or more seconddevices, an icon corresponding to the determined transportation modeassociated with the first user.
 14. The server system of claim 9,wherein the one or more programs further comprises instructions for:displaying a first range around the current location of the first useron the map interface; displaying a second range around a currentlocation of at least one of the one or more second users on the mapinterface; and in response to detecting, from one of the first user andthe at least one of the one or more second users, a selection inputdirected to an overlapped region of the first range and the secondrange, displaying an expanded view of the overlapped region between thefirst range and the second range on the map interface on at least thefirst device and the second device corresponding to the at least one ofthe one or more second users.
 15. A non-transitory computer readablestorage medium storing one or more programs, the one or more programscomprising instructions, which, when executed by a server system withone or more processors, cause the server system to perform operationscomprising: determining a motion state of a first user in accordancewith respective information items related to a current location and aprevious location of a first device associated with the first user; inaccordance with a determination that the motion state of the first useris a stationary state, determining a user direction of the first userbased an orientation of the first device associated with the currentlocation of the first device; in accordance with a determination thatthe motion state of the first user is a moving state, determining theuser direction of the first user based on a motion direction from theprevious location to the current location of the first device; andsending the determined user direction of the first user to one or moresecond devices associated with one or more second users, wherein the oneor more second users are associated with the first user for locationsharing, and the determined user direction and the current location ofthe first user are graphically represented on a map interface on each ofthe one or more second devices.
 16. The non-transitory computer readablestorage medium of claim 15, wherein the one or more programs furthercomprise instructions which cause the server system to performoperations comprising: in accordance with a determination that themotion state of the first user is the moving state, determining a uservelocity of the first user based on the respective information itemsrelated to the current location and the previous location of the firstdevice; and sending the determined user velocity of the first user tothe one or more second devices, wherein the determined user velocity ofthe first user is graphically represented on the map interface alongwith the user direction and the current location of the first user. 17.The non-transitory computer readable storage medium of claim 15, whereinthe one or more programs further comprise instructions which cause theserver system to perform operations comprising: providing instantmessages transmitted during a chat session between the first user andthe one or more second users; in accordance with a predetermined keywordmatching criterion, detecting one or more keywords in the instantmessages transmitted during the chat session; and in response todetecting the one or more keywords, providing the map interface to theone or more second devices for display during the chat session, whereinthe determined user direction of the first user is displayed on the mapinterface on each of the one or more second devices.
 18. Thenon-transitory computer readable storage medium of claim 15, wherein theone or more programs further comprise instructions which cause theserver system to perform operations comprising: displaying respectiveicons corresponding to the first user and the one or more second userson the map interface on each of the one or more second devices; and inresponse to receiving a selection input from a respective user of theone or more second users for selecting one of the respective iconscorresponding to the first user and the one or more second users,adjusting the map interface displayed on at least the second deviceassociated with the respective user providing the selection input,wherein adjusting the map interface includes one of: re-centering themap interface over a user location of the user corresponding to theselected icon, zooming out the map interface to include the userlocation of the user corresponding to the selected icon on the mapinterface, and zooming into the map interface around the user locationof the user corresponding to the selected icon on the map interface. 19.The non-transitory computer readable storage medium of claim 15, whereinthe one or more programs further comprise instructions which cause theserver system to perform operations comprising: in accordance with adetermination that the motion state of the first user is the movingstate, determining a transportation mode associated with the first userin accordance with the respective information items of the first device;and displaying, on the map interface on each of the one or more seconddevices, an icon corresponding to the determined transportation modeassociated with the first user.
 20. The non-transitory computer readablestorage medium of claim 15, wherein the one or more programs furthercomprise instructions which cause the server system to performoperations comprising: displaying a first range around the currentlocation of the first user on the map interface; displaying a secondrange around a current location of at least one of the one or moresecond users on the map interface; and in response to detecting, fromone of the first user and the at least one of the one or more secondusers, a selection input directed to an overlapped region of the firstrange and the second range, displaying an expanded view of theoverlapped region between the first range and the second range on themap interface on at least the first device and the second devicecorresponding to the at least one of the one or more second users.